/**
 * @作者：陈明明
 * @创建日期 ： 2021/7/10 16:23
 */


/**
 * lrc转srt字幕
 * @param data string 歌词字符串
 * @returns {string}
 */
const lrc2srt= (data) => {
    let srts = getLrcs(data)
    let str = ''
    for (let i = 0; i < srts.length; i++) {
        let item = srts[i]
        if (!item.content) continue // 跳过空行
        if (i !== srts.length - 1) {
            let next = srts[i + 1]
            str += `${i + 1}\n00:${item.min}:${item.sec},${item.mil} --> 00:${next.min}:${next.sec},${next.mil}\n${item.content}\n\n`
        } else {
            str += `${i + 1}\n00:${item.min}:${item.sec},${item.mil} --> 00:10:00,000\n${item.content}\n\n`
        }
    }
    return str
}

/**
 * 获取歌词列表
 * @param data String 歌词字符串
 * @returns {[]}
 */
const getLrcs = (data) => {
    let pattern = /\[(\d{2}):(\d{2})\.(\d{2})\](.*)/
    let lines = data.split('\n')
    let lrcs = []
    // 歌词主体
    for (let item of lines) {
        let lrc = pattern.exec(item)
        if (lrc) {
            lrcs.push({
                min: lrc[1],
                sec: lrc[2],
                mil: lrc[3] + '0',
                content: lrc[4]
            })
        }
    }
    return lrcs
}